class ApplicationController < ActionController::Base
  protect_from_forgery
  
  before_filter :set_language  
  
  # Não é o melhor lugar para se definir isso
  I18n.default_locale = :"pt-br"
  
  def set_language
    available = %w{en pt-br}
    default_lang = request.compatible_language_from(available)
    I18n.locale = default_lang || I18n.default_locale
  end

  protected
  
  def verifica_administrador
    busca_administrador
    if @administrador_logado.nil?
      flash[:alert] = t('application.access_denied')
      redirect_to :controller => :login, :action => :index
    end
  end  

  def verifica_medico
    busca_medico
    if @medico_logado.nil?
      flash[:alert] = t('application.access_denied')
      redirect_to :controller => :login, :action => :index
    end
  end

  def verifica_paciente
    busca_paciente
    if @paciente_logado.nil?
      flash[:alert] = t('application.access_denied')
      redirect_to :controller => :login, :action => :index
    end
  end

  def verifica_administrador_medico
    busca_administrador or busca_medico
    if @administrador_logado.nil? and @medico_logado.nil?
      flash[:alert] = t('application.access_denied')
      redirect_to :controller => :login, :action => :index
    end
  end

  def verifica_administrador_paciente
    busca_administrador or busca_paciente
    if @administrador_logado.nil? and @paciente_logado.nil?
      flash[:alert] = t('application.access_denied')
      redirect_to :controller => :login, :action => :index
    end
  end

  def verifica_administrador_paciente_medico
    busca_administrador or busca_paciente or busca_medico
    if @administrador_logado.nil? and @paciente_logado.nil? and @medico_logado.nil?
      flash[:alert] = t('application.access_denied')
      redirect_to :controller => :login, :action => :index
    end
  end

  def busca_administrador
    if session[:administrador_id].present?
      @administrador_logado = Usuarios::Administrador.buscar_ativos(:id => session[:administrador_id]).first
      @usuario_logado = @administrador_logado
    end
  end

  def busca_medico
    if session[:medico_id].present?
      @medico_logado = Usuarios::Medico.buscar_ativos(:id => session[:medico_id], :ativo => true).first
      @usuario_logado = @medico_logado
    end
  end

  def busca_paciente
    if session[:paciente_id].present?
      @paciente_logado = Usuarios::Paciente.buscar_ativos(:id => session[:paciente_id], :ativo => true).first
      @usuario_logado = @paciente_logado
    end
  end
end
